The Dynamic Host Configuration Protocol (DHCP) allows hosts on a network to obtain network addresses and other network configuration information from a DHCP server. A detailed description of conventional DHCP is provided in a document entitled “RFC 2131 DYNAMIC HOST CONFIGURATION PROTOCOL,” by R. Droms, March 1997, the teachings of which are hereby incorporated by reference in their entirety. When a host is not directly connected to the DHCP server, communications between the host and the DHCP server are forwarded by a relay agent. The relay agent may add additional information into the DHCP packets in the form of Option 82 data. A detailed description of DHCP relay agents and Option 82 is provided in a document entitled “RFC 3046 DHCP RELAY AGENT INFORMATION OPTION,” by M. Patrick, January 2001, the teachings of which are hereby incorporated by reference in their entirety.
Implementations of DHCP typically allocate network addresses (for example, in an Internet Protocol network, an IP address) to the clients based on the hardware addresses (for example, in an Ethernet network, the MAC addresses) of the clients. In a manufacturing environment, pieces of machinery on a factory floor may each connect to a network, each machine having a MAC address. The machines may receive their IP addresses through DHCP. However, if a piece of machinery fails and must be swapped out and replaced with a new virtually identical piece (but having a different MAC address), conventional DHCP will likely assign the new piece a different IP address than that assigned to the predecessor piece since the new piece has a different MAC address. This can interrupt the proper flow of the factory floor. For example, if the machines are controlled by an IP-based manufacturing control system, the swapped-out machine will no longer appear to be operational. In one conventional system, an extension to the DHCP server is configured to intercept an incoming DHCP Discover packet and rewrite the hardware address field of the packet with the hardware address and the port of the switch to which the machine is connected. This interception and rewrite are performed by an extension before the packet is received by the DHCP server program. This technique fools the DHCP server into thinking that the new piece is actually the predecessor piece. This technique allows the DHCP server to assign the same network address to swapped-out machines. The extension then rewrites the hardware address field of the outgoing DHCP packet with the original hardware address so that the packet can be directed to the proper host.